// pages/cart/cart.js
var {getIndexGoods} = require("../../api/index.js");
Page({
  /**
   * 页面的初始数据
   */
  data: {
    tipsflag:false,//添加购物车提示
    deltips:false,//删除提示
    totalData:0,//总价格
    goodsList:[],//存放购物车数据
    recommendgoodsList:[
      // {
      //   id:1,
      //   picUrl:'../../images/lists01.webp',
      //   description:'创维网络平板液晶电视机 100寸大屏电视机',
      //   address:'广东广州',
      //   oldPrice:4999,
      //   price:3989
      // }
    ]//推荐商品数据
  },
// 数量加1
add(options){
  let index = options.target.dataset.id;
  let num = this.data.goodsList[index].num;
  let key = "goodsList["+index+"].num"
  this.setData({
      [key]:num+1
  })
  wx.setStorageSync('goodsCarlist', this.data.goodsList)//更新内存中购物车的值
  this.getTotal();//计算价格
},
// 数量减1
reduce(options){
  let index = options.target.dataset.id;
  let num = this.data.goodsList[index].num;
  let key = "goodsList["+index+"].num";
  num = num <= 1? 1: num-1;
  this.setData({
      [key]:num
  })
  wx.setStorageSync('goodsCarlist', this.data.goodsList)//更新内存中购物车的值
  this.getTotal();//计算价格
},
    // 删除数据
    del(options){
      let index = options.currentTarget.dataset.id;
      this.data.goodsList.splice(index,1);
      // this中数据删除后重新渲染视图
      this.setData({
          deltips:true,//提示
          goodsList:this.data.goodsList
      })
      setTimeout(() => {
        this.setData({
          deltips:false,
        })
      }, 1500);//1.5s提示消失
      wx.setStorageSync('goodsCarlist', this.data.goodsList)//更新内存中购物车的值
      this.getTotal();//计算价格
      
  },
  // 计算总价格
  getTotal:function(){
      // 获取数据
      let goodsList = this.data.goodsList;
      if(goodsList){
        let data = goodsList.reduce(function(total,item){
            return total + item.num *item.price;
        },0)
        this.setData({
            totalData:data
        })
      }
  },
      // 加入购物车
      addCart(data){
        let id = data.currentTarget.dataset.id;
        let goodsindex = this.data.recommendgoodsList.findIndex(item=>item.id == id)
         // 购物车数据结构
         let cartLists ={
          id:data.currentTarget.dataset.id,
          picUrl:this.data.recommendgoodsList[goodsindex].picUrl,
          description:this.data.recommendgoodsList[goodsindex].description,
          price:this.data.recommendgoodsList[goodsindex].price,
          oldPrice:this.data.recommendgoodsList[goodsindex].oldPrice,
          num:1,
          }
          // 数据添加数据缓存中
          // 1.判断数据缓存中是否有数据
          let goodsCarList = wx.getStorageSync("goodsCarlist");//获取数据
          // 2.有数据
          if(goodsCarList){
              // 2.1有相同数据，数据加一
              let index = goodsCarList.findIndex(item=>item.id == data.currentTarget.dataset.id)
              if(index != -1){  //有相同数据
                  goodsCarList[index].num += 1;
              }else{
                  // 2.2有数据没有相同数据,添加数据
                  goodsCarList.push(cartLists);
              }
              wx.setStorageSync("goodsCarlist",goodsCarList);
          }else{
              // 3.没有数据 添加数据
              wx.setStorageSync("goodsCarlist",[cartLists]);
          }
          this.setData({
            tipsflag:true,
            goodsList:wx.getStorageSync("goodsCarlist"),//刷新数据
          })
          setTimeout(() => {
            this.setData({
              tipsflag:false,
            })
          }, 1500);
          this.getTotal();
        },
        // 点击结算
        goPay(){
          wx.navigateTo({
            url: '/pages/pay/pay',
          })
        },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getTotal();//计算总价格
    // 请求商品数据 随机6条
    getIndexGoods().then((data)=>{
      let lists = [];
      let goodslists = data.message.goods;
      goodslists.forEach(item=>{
          let {goods_id,goods_small_logo,goods_name,goods_price} = item;
          let data = {
              id:goods_id,
              picUrl:goods_small_logo,
              description:goods_name,
              address:"广州",
              price:goods_price,
              oldPrice:goods_price+100
          };
          if(goods_small_logo){
              lists.push(data);
          }
      })
      lists = lists.sort(()=>{
        return Math.random()-0.5
      }).slice(0,6)
      this.setData({
        recommendgoodsList:lists
      })
  })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    // 获取数据
    var getCartData = wx.getStorageSync("goodsCarlist");
    this.setData({
        goodsList:getCartData
    });
    this.getTotal();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 获取数据
    var getCartData = wx.getStorageSync("goodsCarlist");
    this.setData({
        goodsList:getCartData
    });
    this.getTotal();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})